/*
 * AbstractDataContainer.h
 *
 *      Author: Jerome RD Soine and Christoph A Brand
 *      Institution: Schwarz goup, Institute for Theoretical Physics, Heidelberg University, Germany
 */

#ifndef ABSTRACTDATACONTAINER_H_
#define ABSTRACTDATACONTAINER_H_

#include <vector>
using namespace std;

/*!
 * \brief Abstract DataContainer class from which specific implementations of DataContainers can be derived.
 */

class AbstractDataContainer {
public:
	/*!
	 * Class Deconstructor.
	 */
	virtual ~AbstractDataContainer() {};
	/*!
	 * Returns number of data points.
	 */
	virtual unsigned int get_n_data_points() = 0;
	/*!
	 * Returns the position vector of the ith data point.
	 */
	virtual vector<double> get_position(unsigned int data_point) = 0;
	/*!
	 * Returns the ith displacement vector.
	 */
	virtual vector<double> get_displacement(unsigned int data_point) = 0;
};


#endif /* ABSTRACTDATACONTAINER_H_ */
